package cn.wch.meshlib.frame;

/**
 * 对于可能分包的情况，用来拼接接收数据，使之成为完整的包。目前不处理
 * BLE特征改变接收数据类
 */
public class MeshFrameAssemble {

    private FrameDataListener listener;

    private static volatile MeshFrameAssemble assemble=null;

    public static MeshFrameAssemble getInstance() {
        if(assemble==null){
            synchronized (MeshFrameAssemble.class){
                assemble=new MeshFrameAssemble();
            }
        }
        return assemble;
    }
    /**输入数据*/
    public void putData(byte[] data,int len){
        //暂时不处理分包
        if(listener!=null){
            listener.onData(data, len);
        }
    }

    /**
     * 设置数据接收侦听器。当BLE特征改变收到有效数据时会触发该侦听器
     * @param dataListener
     */
    public void setDataListener(FrameDataListener dataListener){
        this.listener=dataListener;
    }
    /**取消侦听器*/
    public void cancelListener(){
        this.listener=null;
    }

    public static interface FrameDataListener {
        void onData(byte[] data,int len);
    }
}
